package com.bigzero.workflow.modules.system.service;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bigzero.workflow.modules.system.dto.LoginDto;
import com.bigzero.workflow.modules.system.dto.UserDto;
import com.bigzero.workflow.modules.system.entity.UserEntity;
import com.bigzero.workflow.modules.system.query.UserQuery;
import com.bigzero.workflow.modules.system.vo.UserActivitiVo;
import com.bigzero.workflow.modules.system.vo.UserVo;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 用户实现类
 * @Author: fanxinxiong
 * @Date: 2025-02-11 14:48:00
 */
@Service
public interface UserService extends IService<UserEntity>{

    /**
     * 系统用户分页列表
     *
     * @param query 分页参数
     * @return 列表
     */
    List<UserVo> queryPage(UserQuery query);

    /**
     * 根据用户名查找用户activiti vo
     * @param username 用户名
     * @return UserActivitiVo
     */
    UserActivitiVo getUserActivitiVoByUsername(String username);

    /**
     * 登录
     * @param loginDto 登录dto
     * @return UserVo
     */
    JSONObject login(LoginDto loginDto);

    /**
     * 新增或者修改
     * @param userDto 用户dto
     * @return int
     */
    int insertOrUpdate(UserDto userDto);

    /**
     * 根据id获取vo对象
     * @param id 主键id
     * @return UserVo
     */
    UserVo getVoById(String id);

    /**
     * 根据id删除用户
     * @param id 主键id
     * @return int
     */
    int deleteById(String id);
}
